package com.vdong.trade.trading.service;

import com.vdong.trade.trading.common.contract.AbstractResponse;
import com.vdong.trade.trading.entity.dto.param.PaymentNotifyRequestDTO;
import com.vdong.trade.trading.entity.dto.param.PaymentRequestDTO;
import org.lamb.framework.common.remote.FacadeResult;

/**
 * @author <a href="mailto:clf@vdongzc.com">clf</a>
 * @Description: TransactionPayService
 * @Date Create on 2018-12-13 15:10:22
 * @since version1.0
 */
public interface TransactionPayService {

    /**
     * 支付接口
     *
     * @param request
     * @return
     */
    FacadeResult<AbstractResponse> execPay(PaymentRequestDTO request);

    /**
     * 支付回调
     *
     * @param request
     * @return
     */
    String paymentResultNotify(PaymentNotifyRequestDTO request);

    /**
     * 查询支付订单状态
     *
     * @param outTradeNo:商户内部唯一支付订单号
     * @param flag:是否执行回调业务处理(true:做回调处理,不做回调处理)
     * @return
     */
    FacadeResult queryOrder(String outTradeNo, Boolean flag);

}
